草庐IT

C++::Boost::Regex 迭代子匹配

全部标签

javascript - 我如何在没有 www 的情况下匹配域名的根目录。使用正则表达式

我尝试用JS中的正则表达式匹配域名的根。当路径本身没有www.时,我遇到了问题。例如,我尝试从这个字符串中匹配:(http://web.archive.org/web/20080620033027/http://www.mrvc.indianrail.gov.in/overview.htm)这就是我尝试的正则表达式,如下所示。我试穿regex101.com/(?我希望输出数组的名称为web.archive.org和mrvc.indianrail.gov.in但得到的是web.archive.org和www.mrvc.indianrail.gov.in在第二种情况下带有www.。

javascript - 在 RegExp 搜索中有效地找到匹配的组

当我的RegExp有多个捕获组时,我想知道哪个组进行了捕获(或者至少是第一个/最后一个这样的组,如果有多个)。如果您熟悉Python,这基本上等同于re.MatchObject.lastgroup。一些使其更清晰的代码:varre_captures=newRegExp("(\\d+)|(for)|(\\w+)","g");varstr="forme20boxesplease";varresult;while((result=re_captures.exec(str))!==null){console.log(result[0],'at',result.index,result.slic

Javascript反向匹配过程

查看RegExp对象文档,找不到可以满足我要求的方法,或者我只是不够努力。假设我有文本:vartext="§193:AndSomeText§";还有一个RegExp对象:varreg=/§([0-9]+):(.*?)§/;运行reg.match(text);显然会给我这样一个数组:["§193:AndSomeText§","193","AndSomeText"]有没有办法扭转这个过程?这样我就给一个函数一个数组,它具有与RegExp相同数量的匹配组,并返回文本的样子:varreg=/§([0-9]+)§(.*?)§/;vardata=["293","SomeNewText"];vart

javascript - 选择并删除所有匹配的数据属性

我正在尝试找到一种方法来从页面中删除来自不同类型元素的所有匹配数据属性。我现在循环一个数组,但名称列表太长了,我希望有更好的方法来删除我的自定义数据属性......使用正则表达式模式?//代码vardataArr=['data-myplugin-value','data-myplugin-id',............'data-myplugin-name'];$.each(dataArr,function(i,a){$('['+a+']').removeAttr(a);}); 最佳答案 如果您不介意使用XPath,这是我的解决方

javascript - 仅替换全局正则表达式的第一个匹配项

我正在编写一个函数来递归替换字符串中正则表达式的匹配项。替换可以是一个函数,就像vanilla.replace一样,这个函数可以通过它的一个参数访问原始字符串。我希望我的函数在每次迭代时只替换一个匹配项。对于非全局正则表达式,情况总是如此。但是,此函数接收的某些正则表达式将是全局的。执行传统的.replace(regex,replacement)意味着它可以在每次迭代中替换多次,不仅打乱了匹配处理的顺序,而且还传递了不正确的索引和原始字符串替换函数。举个例子:functionrecursiveReplace(string,regex,replacement){for(vari=1e8;

javascript - 为什么可选的 0 宽度捕获组中的先行会阻止该组匹配?

考虑以下正则表达式:(^.)?如果可能的话,这会匹配字符串开头的单个字符:>>'ab'.match(/(^.)?/)Array["a","a"]但是,将.包装在前瞻中会导致它停止工作:>>'ab'.match(/(^(?=.))?/)Array["",undefined]undefined的值表示该组不匹配,而不是匹配一个空字符串。但我不明白前瞻是如何阻止组匹配的。我本希望在这里得到["",""]的结果。更奇怪的是,只有周围捕获组的宽度为0时才会出现这种情况。如果我们将^anchor更改为更长的内容,它会再次正常工作:>>'ab'.match(/(a(?=.))?/)Array["a"

javascript - 可以使用流迭代两个联合数组

我有一个函数foo接受两个数组的并集,它唯一做的就是遍历数组,但是我得到了流类型错误,一些属性在大批。不可能这样做吗?我根本没有使用任何属性。它们都是数组,所以流应该知道它们是可迭代的。AliveexampleinthefloweditortypeHandle={|+articleId:string,+type:'handle',+accessories:Array,+positionInfo:string,|};typeLeg={|+articleId:string,+type:'leg',|};typeEntity=Handle|Leg;functionfoo(entities:A

javascript - 查找包含匹配正则表达式的字符串的 DOM 元素

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭1年前。Improvethisquestion我需要在HTML页面上找到所有匹配特定正则表达式的文本片段(也就是说,我需要忽略标签以便'Firstname:John'匹配'Firstname:John'),然后突出显示这些找到的片段(通过用新元素装饰)并应用自定义css样式)并能够找到这些片段,例如能够将它们滚动到View中。功能类似于Skype浏览器插件对页面上找到的电话号码的处理。

javascript - 为什么当我在 RegEx 中转义 < 字符时 jslint 会报错?

代码:varfoo=/\当我转到jslint.com时然后输入,我得到:Problematline1character12:Unexpected'\'.它曾经告诉我Unexpectedescapedcharacter'但时代变了。所以我很好奇,为什么?如果你尝试varfoo=/\>/;它不在乎,这与有什么关系?? 最佳答案 如果你有两个简单的div,区别就很明显了:>JSLint不假定脚本是一个独立的文件或位于HTML文档的脚本标记内。在标记语言中,例如XUL,MXML,XAML,TVML,LZX,XHTML5或SVG,script

javascript - while 循环中 regex.exec() 赋值的更好解决方案

这里有更好的解决方案吗?我尽量避免在while中进行赋值,但仍然能够遍历匹配项并使用捕获的组。varmatch="";varCSS_URL_PATTERN=/url\s*\(\s*["|']?(.*?)\s*["|']?\)\s*/gmwhile((match=CSS_URL_PATTERN.exec(someBigCSSString))!==null){//Dostuffherepermatch…}我为这个问题添加了更多上下文,还有一个RegEx示例。 最佳答案 当我需要.exec时,我总是这样做:varre=/.../g,mat